<template>
  <h1>循环指令</h1>
  <ul>
    <!--
      -for:
      格式为: v-for="元素名 in 响应式数组变量名"
            类似于新型for循环的遍历模式
            遍历出的元素按需拿取 可以直接插值显示 也可以打点获取
    -->
    <li v-for="elements in arr">{{ elements }}</li>
  </ul>
  <!--
    -for指令的`响应式数组变量名`处也可以直接写整数
    表示遍历数字从1开始 到5结束 每次固定自增1
    可以自定义
  -->
  <ol>
    <li v-for="item in 5">{{ item }}</li>
  </ol>

  <table border="1px">
    <caption>商品列表</caption>
    <tr>
      <th>序列</th>
      <th>商品名称</th>
      <th>商品价格</th>
      <th>商品库存</th>
    </tr>
    <!--被被遍历的元素可以通过(元素1,元素2,元素..)的格式添加多个-->
    <tr v-for="(item,index) in productArr">
      <!--index表示下标 从0开始 可以通过拼接+1的方式实现从1开始排序-->
      <td>{{ index + 1 }}</td>
      <td>{{ item.title }}</td>
      <td>{{ item.price }}</td>
      <td>{{ item.num }}</td>
      <td>
        <button @click="del(index)">删除</button>
      </td>
    </tr>
  </table>
</template>

<script setup>
import {ref} from "vue";

const arr = ref(['元素1', '元素2', '元素3', '元素4', '元素5']);

const productArr = ref([
  {title: '面包', price: 20, num: 68},
  {title: '苹果', price: 30, num: 12},
  {title: '香蕉', price: 40, num: 34},
  {title: '摩托车', price: 50000, num: 3}
]);

const del = (index) => {
  if (confirm('是否删除?')) {
    /*
        响应式变量的值有一个方法:
        响应式数组变量名.value.`splice`(index[下标参数],`count`[从当前索引下标开始删除几个与该下标对应的元素])
     */
    productArr.value.splice(index, 1);
  }
}
</script>

<style scoped>

</style>